#!/usr/bin/env python
# -*- coding:utf-8 -*-

# file:do_gevent1.py
# author: 马国鑫
# datetime:2022/4/11 21:27
# software: PyCharm

"""
this is function  description 
"""

# import module your need

"""
    1.导入模块
    2.指派任务
    自动识别程序中的耗时操作，自动切换到其他的任务gevent
"""
# 一般放到开头
from gevent import monkey

monkey.patch_all()
import time
import gevent


def work1():
    while True:
        print('正在执行work1........', gevent.getcurrent())
        # time.sleep(0.5)默认不能识别为耗时
        # 1.换成gevent.sleep(0.5)
        # 2.给我们的gevent打补丁(让gevent识别我们的time.sleep())
        # 打补丁:在不修改程序代码的基础上，增加新的功能
        # 步骤:
        # 1.导入模块 monkey模块
        # 2.进行破解 monkey.patch_all()
        time.sleep(0.5)
        # gevent.sleep(0.5)


def work2():
    while True:
        print('正在执行work2........', gevent.getcurrent())
        time.sleep(0.5)
        # gevent.sleep(0.5)


if __name__ == '__main__':
    # gevent.spawn(函数名，参数1，参数2,....)
    g1 = gevent.spawn(work1)
    g2 = gevent.spawn(work2)

    # 没有需要阻塞，就不会执行协程
    # 让主线程执行完协程再结束
    g1.join()
    g2.join()
